﻿using System;
using ADV_Evaluator.Command;


namespace ADV_Evaluator.Data {

    /// <summary>
    /// コマンドデータ１つを表す構造体。
    /// *.scnファイルには、このオブジェクトを集めた配列をシリアライズして保存する。
    /// </summary>
    [Serializable]
    public struct CommandData {

        /// <summary>
        /// コマンド名。処理の分岐やListBoxの描画などに用いる。
        /// </summary>
        public CommandName Name;
        /// <summary>
        /// 属性を集めた構造体。キャストして使う。
        /// </summary>
        public ICommandParams Params;
        /// <summary>
        /// インデント
        /// </summary>
        public byte Indent;

        /// <summary>
        /// コンストラクタ
        /// </summary>
        /// <param name="name">コマンド名</param>
        /// <param name="attributes"></param>
        public CommandData(CommandName name, ICommandParams param) {
            Name = name;
            Params = param;
            Indent = 0;
        }

    }

}
